package com.indusfo.spc.pojo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.indusfo.spc.common.pojo.BasePojo;

import java.util.Date;
import java.util.List;

/**
 * @author: louk
 * @Description:物料信息Pojo
 * @date: 2019/11/15 15:56
 *
 */

public class Mat  extends BasePojo {
    /**
     * 物料id
     */

    private Integer matId;
    /**
     * 物料编码
     */
    @ExcelProperty(value = "物料编码",index = 0)
    private String matCode;
    /**
     * 物料名称
     */
    @ExcelProperty(value = "物料名称",index = 1)
    private String matName;
    /**
     * 物料规格
     */
    @ExcelProperty(value = "物料规格",index = 2)
    private String matModel;
    /**
     * 物料类别id
     */
    private Integer matTypeId;
    /**
     *物料来源id
     */
    private Integer matSourceId;

    /**
     *物料单位id
     */
    private Integer matUnitId;
    /**
     *单位数量
     */
    @ExcelProperty(value = "单位数量",index = 9)
    private Integer unitNum;
    /**
     * 资源数量
     */
    @ExcelProperty(value = "资源数量",index = 11)
    private Integer resourceNum;
    /**
     * 保有数量
     */
    @ExcelProperty(value = "保有数量",index = 14)
    private Integer inventoryNum;
    /**
     * 报工数量
     */
    @ExcelProperty(value = "报工数量",index = 15)
    private Integer finishNum;
    /**
     * 生产节拍
     */
    @ExcelProperty(value = "生产节拍",index = 12)
    private Integer productTakt;
    /**
     *创建日期
     */
    private Date createDate;
    /**
     *干燥时间
     */
    @ExcelProperty(value = "干燥时间",index = 13)
    private Integer dryDate;
    /**
     * 成品机型
     */
    @ExcelProperty(value = "成品机型",index = 10)
    private String deviceModel;
    /**
     * 客户名称
     */
    @ExcelProperty(value = "客户名称",index = 8)
    private String customerName;
    /**
     * 供应商名称
     */
    private String supplierName;
    /**
     * 备注
     */
    private String remark;
    /**
     * 数据状态
     */
    private Integer dataState;

    /**
     * 条码规则id
     */
    private Integer ruleId;

    /**
     * 图号
     */
    @ExcelProperty(value = "图号",index = 7)
    private String figureNum;

    /**
     * 物料类型id
     */
    private Integer artifactTypeId;
    /**
     * @author: louk
     * @Description:以上是物料信息数据库对应字段,以下是衍生字段
     * @date: 2019/11/18 9:52
     *
     */
    //条码规则名称
    @ExcelProperty(value = "条码规则名称",index = 6)
    private String ruleName;
    //物料来源名称
    @ExcelProperty(value = "物料来源名称",index = 5)
    private String  matSourceName;
    //物料单位名称
    @ExcelProperty(value = "物料单位名称",index = 4)
    private String matUnitName;
    //物料类别名称
    @ExcelProperty(value = "物料类别名称",index = 3)
    private String matTypeName;
    //数据状态名称
    private String dataStateName;
    //物料类型名称
    private String artifactTypeIdName;

    private List<MatVer> matVers;


    public Integer getArtifactTypeId() {
        return artifactTypeId;
    }

    public void setArtifactTypeId(Integer artifactTypeId) {
        this.artifactTypeId = artifactTypeId;
    }

    public String getArtifactTypeIdName() {
        return artifactTypeIdName;
    }

    public void setArtifactTypeIdName(String artifactTypeIdName) {
        this.artifactTypeIdName = artifactTypeIdName;
    }

    public String getDataStateName() {
        return dataStateName;
    }

    public void setDataStateName(String dataStateName) {
        this.dataStateName = dataStateName;
    }

    public String getMatTypeName() {
        return matTypeName;
    }

    public void setMatTypeName(String matTypeName) {
        this.matTypeName = matTypeName;
    }

    public Integer getRuleId() {
        return ruleId;
    }

    public void setRuleId(Integer ruleId) {
        this.ruleId = ruleId;
    }

    public String getFigureNum() {
        return figureNum;
    }

    public void setFigureNum(String figureNum) {
        this.figureNum = figureNum;
    }

    public String getRuleName() {
        return ruleName;
    }

    public void setRuleName(String ruleName) {
        this.ruleName = ruleName;
    }

    public String getMatSourceName() {
        return matSourceName;
    }

    public void setMatSourceName(String matSourceName) {
        this.matSourceName = matSourceName;
    }

    public String getMatUnitName() {
        return matUnitName;
    }

    public void setMatUnitName(String matUnitName) {
        this.matUnitName = matUnitName;
    }

    public Integer getMatId() {
        return matId;
    }

    public void setMatId(Integer matId) {
        this.matId = matId;
    }

    public String getMatCode() {
        return matCode;
    }

    public void setMatCode(String matCode) {
        this.matCode = matCode == null ? null : matCode.trim().replace(" ","");
    }

    public String getMatName() {
        return matName;
    }

    public void setMatName(String matName) {
        this.matName = matName == null ? null : matName.trim().replace(" ","");
    }

    public String getMatModel() {
        return matModel;
    }

    public void setMatModel(String matModel) {
        this.matModel = matModel == null ? null : matModel.trim().replace(" ","");
    }

    public Integer getMatTypeId() {
        return matTypeId;
    }

    public void setMatTypeId(Integer matTypeId) {
        this.matTypeId = matTypeId;
    }

    public Integer getMatSourceId() {
        return matSourceId;
    }

    public void setMatSourceId(Integer matSourceId) {
        this.matSourceId = matSourceId;
    }

    public Integer getMatUnitId() {
        return matUnitId;
    }

    public void setMatUnitId(Integer matUnitId) {
        this.matUnitId = matUnitId;
    }

    public Integer getUnitNum() {
        return unitNum;
    }

    public void setUnitNum(Integer unitNum) {
        this.unitNum = unitNum;
    }

    public Integer getResourceNum() {
        return resourceNum;
    }

    public void setResourceNum(Integer resourceNum) {
        this.resourceNum = resourceNum;
    }

    public Integer getInventoryNum() {
        return inventoryNum;
    }

    public void setInventoryNum(Integer inventoryNum) {
        this.inventoryNum = inventoryNum;
    }

    public Integer getFinishNum() {
        return finishNum;
    }

    public void setFinishNum(Integer finishNum) {
        this.finishNum = finishNum;
    }

    public Integer getProductTakt() {
        return productTakt;
    }

    public void setProductTakt(Integer productTakt) {
        this.productTakt = productTakt;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public Integer getDryDate() {
        return dryDate;
    }

    public void setDryDate(Integer dryDate) {
        this.dryDate = dryDate;
    }

    public String getDeviceModel() {
        return deviceModel;
    }

    public void setDeviceModel(String deviceModel) {
        this.deviceModel = deviceModel == null ? null : deviceModel.trim().replace(" ","");
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName == null ? null : customerName.trim().replace(" ","");
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName == null ? null : supplierName.trim().replace(" ","");
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim().replace(" ","");
    }

    public Integer getDataState() {
        return dataState;
    }

    public void setDataState(Integer dataState) {
        this.dataState = dataState;
    }

  public List<MatVer> getMatVers() {
    return matVers;
  }

  public void setMatVers(List<MatVer> matVers) {
    this.matVers = matVers;
  }

  public Mat() {
    }
    //编号,名称,规格型号,资源数,保有量,报工数量,生产节拍,干燥时间,成品机型,客户代码,图号,条码规则名称,物料来源名称,物料单位名称,物料类型名称
    public Mat(String matCode, String matName, String matModel, Integer resourceNum, Integer inventoryNum, Integer finishNum, Integer productTakt, Integer dryDate,
               String deviceModel, String customerName,
               String figureNum, String ruleName,String matUnitName, String matTypeName,Integer unitNum,String artifactTypeIdName) {
        this.matCode = matCode;
        this.matName = matName;
        this.matModel = matModel;
        this.resourceNum = resourceNum;
        this.inventoryNum = inventoryNum;
        this.finishNum = finishNum;
        this.productTakt = productTakt;
        this.dryDate = dryDate;
        this.deviceModel = deviceModel;
        this.customerName = customerName;
        this.figureNum = figureNum;
        this.ruleName = ruleName;
        this.matUnitName = matUnitName;
        this.matTypeName = matTypeName;
        this.unitNum=unitNum;
        this.artifactTypeIdName=artifactTypeIdName;
    }
}
